package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 应收核销单对象 receive_reconciliation
 * 
 * @author ruoyi
 * @date 2024-11-14
 */
public class ReceiveReconciliation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 单据id */
    private Long id;
    private List<ReceiveReconciliationDetail> receiveReconciliationDetailList;
    /** 单据日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date documentDate;

    /** 客户id */
    @Excel(name = "客户id")
    private Long cusId;

    /** 核销金额 */
    @Excel(name = "核销金额")
    private BigDecimal reconciliationAmount;

    /** 单据阶段 */
    @Excel(name = "单据阶段")
    private Long documentStage;

    /** 核批结果(1.待审核 2.审核通过 3.驳回) */
    @Excel(name = "核批结果(1.待审核 2.审核通过 3.驳回)")
    private Long approvalResult;

    /** 已生效 (1: 是, 0: 否) */
    @Excel(name = "已生效 (1: 是, 0: 否)")
    private Long isEffect;

    /** 已关闭 (1: 是, 0: 否) */
    @Excel(name = "已关闭 (1: 是, 0: 否)")
    private Long isClose;

    /** 已作废 (1: 是, 0: 否) */
    @Excel(name = "已作废 (1: 是, 0: 否)")
    private Long isCancel;

    /** 生效时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date effectiveTime;

    /** 审批人 */
    @Excel(name = "审批人")
    private String approver;

    private String cusName;

    /** 修改人 */
    @Excel(name = "修改人")
    private String modifyBy;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date modifyTime;

    /** 核批意见 */
    @Excel(name = "核批意见")
    private String approvalRemark;

    /** 单据编号 */
    @Excel(name = "单据编号")
    private String documentCode;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDocumentDate(Date documentDate) 
    {
        this.documentDate = documentDate;
    }

    public Date getDocumentDate() 
    {
        return documentDate;
    }
    public void setCusId(Long cusId) 
    {
        this.cusId = cusId;
    }

    public Long getCusId() 
    {
        return cusId;
    }
    public void setReconciliationAmount(BigDecimal reconciliationAmount) 
    {
        this.reconciliationAmount = reconciliationAmount;
    }

    public BigDecimal getReconciliationAmount() 
    {
        return reconciliationAmount;
    }
    public void setDocumentStage(Long documentStage) 
    {
        this.documentStage = documentStage;
    }

    public Long getDocumentStage() 
    {
        return documentStage;
    }
    public void setApprovalResult(Long approvalResult) 
    {
        this.approvalResult = approvalResult;
    }

    public Long getApprovalResult() 
    {
        return approvalResult;
    }
    public void setIsEffect(Long isEffect) 
    {
        this.isEffect = isEffect;
    }

    public List<ReceiveReconciliationDetail> getReceiveReconciliationDetailList() {
        return receiveReconciliationDetailList;
    }

    public void setReceiveReconciliationDetailList(List<ReceiveReconciliationDetail> receiveReconciliationDetailList) {
        this.receiveReconciliationDetailList = receiveReconciliationDetailList;
    }

    public Long getIsEffect()
    {
        return isEffect;
    }
    public void setIsClose(Long isClose) 
    {
        this.isClose = isClose;
    }

    public Long getIsClose() 
    {
        return isClose;
    }
    public void setIsCancel(Long isCancel) 
    {
        this.isCancel = isCancel;
    }

    public String getCusName() {
        return cusName;
    }

    public void setCusName(String cusName) {
        this.cusName = cusName;
    }

    public Long getIsCancel()
    {
        return isCancel;
    }
    public void setEffectiveTime(Date effectiveTime) 
    {
        this.effectiveTime = effectiveTime;
    }

    public Date getEffectiveTime() 
    {
        return effectiveTime;
    }
    public void setApprover(String approver) 
    {
        this.approver = approver;
    }

    public String getApprover() 
    {
        return approver;
    }
    public void setModifyBy(String modifyBy) 
    {
        this.modifyBy = modifyBy;
    }

    public String getModifyBy() 
    {
        return modifyBy;
    }
    public void setModifyTime(Date modifyTime) 
    {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() 
    {
        return modifyTime;
    }
    public void setApprovalRemark(String approvalRemark) 
    {
        this.approvalRemark = approvalRemark;
    }

    public String getApprovalRemark() 
    {
        return approvalRemark;
    }
    public void setDocumentCode(String documentCode) 
    {
        this.documentCode = documentCode;
    }

    public String getDocumentCode() 
    {
        return documentCode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("documentDate", getDocumentDate())
            .append("cusId", getCusId())
            .append("reconciliationAmount", getReconciliationAmount())
            .append("documentStage", getDocumentStage())
            .append("approvalResult", getApprovalResult())
            .append("isEffect", getIsEffect())
            .append("isClose", getIsClose())
            .append("isCancel", getIsCancel())
            .append("effectiveTime", getEffectiveTime())
            .append("approver", getApprover())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("modifyBy", getModifyBy())
            .append("modifyTime", getModifyTime())
            .append("remark", getRemark())
            .append("approvalRemark", getApprovalRemark())
            .append("documentCode", getDocumentCode())
            .toString();
    }
}
